iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
Python

進擊的Python系列 第 17

Day16-Pandas資料分析(尤米爾)

  • 分享至 

  • xImage
  •  

我們結婚吧!希斯特莉亞~我是尤米爾!我分享Pandas資料分析

https://ithelp.ithome.com.tw/upload/images/20240823/20163257c7Dp19MJm6.png
圖片來源:(https://www.dcard.tw/f/girlslove/p/239241530)

Pandas資料分析

https://ithelp.ithome.com.tw/upload/images/20240823/20163257NPiuYKPwuA.png
圖片來源:pandas

是 Python 一個強大資料分析庫,提供高性能、使用資料結構和資料分析工具。特別擅長處理表格型資料,類似於 Excel,但功能更加強大且靈活

Series

一維標籤陣列,類似 NumPy 一維陣列,但具有索引功能

DataFrame

二維標籤陣列,類似於一個表格,由多個 Series 組成

基本用法

import pandas as pd

# 創建 Series
data = [1, 2, 3, 4, 5]
s = pd.Series(data)
print(s)

# 創建 DataFrame
data = {'Column1': [1, 2, 3], 'Column2': [4, 5, 6]}
df = pd.DataFrame(data)
print(df)

讀取資料

# 讀取 CSV 檔案
df = pd.read_csv('data.csv')

# 讀取 Excel 檔案
df = pd.read_excel('data.xlsx')

資料探索

# 查看前幾行
print(df.head())

# 查看後幾行
print(df.tail())

# 查看資料資訊
print(df.info())

# 查看統計摘要
print(df.describe())

資料選取

# 選取單一欄位
print(df['Column1'])

# 選取多個欄位
print(df[['Column1', 'Column2']])

# 使用 loc 和 iloc 選取資料
print(df.loc[0:2, 'Column1'])  # 選取前三行的 'Column1'
print(df.iloc[0:2, 0])  # 選取前兩行的第一列

資料處理

# 刪除重複值
df = df.drop_duplicates()

# 填充缺失值
df.fillna(0, inplace=True)

# 根據條件篩選資料
df_filtered = df[df['Column1'] > 2]

# 分組聚合
grouped = df.groupby('Column1').mean()

資料操作

# 新增欄位
df['NewColumn'] = df['Column1'] * 2

# 排序
df.sort_values(by='Column1', ascending=False, inplace=True)

# 合併 DataFrame
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'C': [7, 8]})
merged_df = pd.merge(df1, df2, on='A', how='outer')

視覺化

import matplotlib.pyplot as plt

# 畫出直方圖
df['Column1'].hist()
plt.show()

# 畫出散佈圖
df.plot.scatter(x='Column1', y='Column2')
plt.show()

進階應用

  • 時間序列分析: Pandas提供強大時間序列處理功能
  • 資料清洗: 處理缺失值、異常值、重複值
  • 資料轉換: 將資料轉換為不同的格式
  • 機器學習: Pandas 與 scikit-learn 機器學習庫無縫整合

結論

Pandas 是 Python 資料分析的基礎工具,它的易用性和功能性成為數據科學家和分析師首選。這篇只介紹 Pandas 基本用法,更多功能和細節下一篇會說明


上一篇
Day15-網路爬蟲(希斯特莉亞)
下一篇
Day17-Series(歐魯)
系列文
進擊的Python36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言